Move Inner to Upper Level Refactoring  

 

�� ������ Move Inner to Upper Level �����丵 ������ ��ſ��� ��������  overview�� �����ϰ�  how �� �����丵�� IntelliJ IDEA���� ���� �� �ִ°��� �����մϴ�.

����  


Move Inner to Upper  �����丵�� ����ڿ��� ���� Ŭ������ ���� �������� �ű�� ���� ����մϴ�.  �� �����, ���� Ŭ������ �� ���� ��������,  �׸��� ���� ������� Ŭ������ �ְ��� ���ؿ� ������ ���ο� ���Ͽ� �Ű����ϴ�.  ��� �����ϴ� ������ �ڵ������� ������Ʈ�˴ϴ�.


���� Ŭ������ ������ �ƴϰ� �޼ҵ�� �ܺ� Ŭ������ �ʵ忡 ������ �ʿ�� �� ��쿡, �ܺ� Ŭ���� �ν��Ͻ��� �̵��ϴ� ���� Ŭ������ �����ڿ� �Ű� �����μ� �Ѿ �� �ֽ��ϴ�.


���� ���, �츮�� ���� �ڵ带 �����ϴ�:

 
    public class OuterClass {
 
        public void foo() {
            //some code here
        }
 
        public class InnerClass {
            public void innerClassMethod() {
                foo();
            }
        }
    }


Moving Inner to Upper  �����丵 �Ŀ� OuterClass  �ڵ�� ������ ���� ���� �� �Դϴ�

 
    public class OuterClass {
        public void foo() {
            //some code here
        }
    }



�׸��� �̰��� InnerClass  �Դϴ� (���ο� ���Ͽ���): 

 
    class InnerClass {
        private OuterClass outerClass;
 
        public InnerClass(OuterClass outerClass) {
            this.outerClass = outerClass;
        }
 
        public void innerClassMethod() {
            outerClass.foo();
        }
    }



���ο��� ������������ �̵�


���� Ŭ������ ���� �������� �̵��ϱ� ���Ͽ�:

 1.   Project ���⿡��
 
���� Ŭ������ �����ϰ� Ŭ���� ����� ������ ��ư Ŭ���Ͽ� �ҷ����� �˾� �޴����� Refactor Move... �� Ŭ���Ͻʽÿ�.


����� Ŭ������ �����ϱ� ���� � �ٸ� ���⸦ ����� �� �ֽ��ϴ�, ���� ��� Structure.


editor ���� : 
���ϴ� Ŭ���� ���𿡼��� ij���� ��ġ�ϰ� �� �޴����� �Ǵ� �����Ϳ��� ������ ��ư�� Ŭ���ϴ� �Ϳ� ���� �ҷ����� �˾� �޴� ���� Refactor |  Move...�� Ŭ���Ͻʽÿ�.


����� ������ ���� Ŭ������ �ű���� �ϰ� ���� ��, ������ ���� Ŭ������ ���� �����丵�� �����ϸ� ����� ������ ���̾�α׸� �� ���Դϴ�:




���� ���� Ŭ������ �ٸ� Ŭ������ �Ű�����  Move Members  �����丵�� ���ʽÿ�.

 2.  Move Inner to Upper Level  ���̾��αװ� ��Ÿ�� ���Դϴ�:

Ŭ���� �̸�

 

�� �ؽ�Ʈ �ʵ忡�� ����� ���� Ŭ������ �̸��� ������ �� �ְų�, ������ �ϳ��� ����� �� �ֽ��ϴ�.

 

�Ű� �����μ� �ܺ� Ŭ������ �ν��Ͻ� �ѱ��


�� üũ �ڽ��� ���õ� �� Parameter name  �ؽ�Ʈ �ʵ�� ��� �����ϰ� �ǰ� ����� �ܺ� Ŭ������ �Ű� ���� �̸��� ������ �� �ְų�, IDEA�� ���� ���ȵ� �ϳ��� ����� �� �ֽ��ϴ�.
���� �� üũ �ڽ��� ���õ��� ������ ���õ� Ŭ������ ���� ���� �� �Ͽ� �̵����� �����ϴ� ������ ������Ʈ�˴ϴ�.


���� �Ű����� Ŭ������ ������ ���̶�� �� üũ �ڽ��� �Ұ����ϰ� �ϰ� �˴ϴ�.

����� �̸� ���� ���


�� üũ �ڽ��� �����ϸ� ����� � ����� �߰ߵǾ����� �����ϰ�, �׵��� ��ü�� �����ϵ��� ����մϴ�.  �� üũ �ڽ��� ���õ��� ���� ��, IDEA�� ��ü ��ɸ� �ڵ������� �����մϴ�.


������ üũ �ڽ��� ���õ��� �ʾ��� ����, ���� �߰ߵ� ����� � �б� ���� ���Ͽ��� �����ϸ� ��ü ����� Ȯ���ϴ� ������Ʈ�� ��ſ� ���� �� �Դϴ�.


Refactoring Preview ���̾�α׿��� (���� �װ��� ��Ÿ����) ����� ����� ������ �м��� �� �ֽ��ϴ�.  �����丵�� �Բ� �����ϱ� ���ؼ�, Do Refactor�� Ŭ���մϴ��׷��� �ʴٸ� Cancel �� Ŭ���մϴ�. ���� ���� ������ Refactoring Preview�� ���ʽÿ�.



 3.   OK�� �����ϴ�, �׸��� ���ϴ� Ŭ������ �̵��� ���Դϴ�.